package com.atguigu.bigdata.spark.core.rdd.operator.action;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;
import java.util.List;

public class Spark02_RDD_Operator_Action_JAVA {
    public static void main(String[] args) {
        // reduce
        //val i: Int = rdd.reduce(_+_)
        //println(i)

        // collect : 方法会将不同分区的数据按照分区顺序采集到Driver端内存中，形成数组
        //val ints: Array[Int] = rdd.collect()
        //println(ints.mkString(","))
        SparkConf conf = new SparkConf().setMaster("local[*]").setAppName("sparkCore");
        JavaSparkContext sc = new JavaSparkContext(conf);

        List<Integer> seq = Arrays.asList(1,2,3,4,5);
        JavaRDD<Integer> rdd = sc.parallelize(seq,2);

        // count : 数据源中数据的个数
        System.out.println(rdd.count());
        // first : 获取数据源中数据的第一个
        System.out.println(rdd.first());
        // take : 获取N个数据
        System.out.println(rdd.take(3));
        // takeOrdered : 数据排序后，取N个数据
        System.out.println(rdd.takeOrdered(3));

        sc.stop();
    }
}
